import * as producqQrcode from '@src/api/productQrcode';
import { getAuthorityForKey, grayFunction, getReportAuth } from '@src/api/ReportApi';
import { getRootWindow } from '@src/util/dom'
/* 超接二维码行为分析灰度控制 */
const SuperQrCodeBhAnalysis = {
    data(){
        return {
            superQrCodeGrayFlag: false,
            superQrcodeAuth: false, // 是否有超级二维码报表权限
            grayReportFlag: false, // 智能报表的灰度
            reportAuth: false, // 是否有报表权限
        }
    },
    computed:{
        edition() {
            const RootWindow = getRootWindow(window)
            return RootWindow.shbEdition || 1
        },
        // 是否报表权限
        isReportAuth () {
            /* 
            * 详情页 - 先判断智能报表有没有开灰度
            * 智能报表开了灰度的 报表权限 && 行为分析报表的权限
            * 智能报表没开灰度的 报表权限
            */
            const EditionArr = [1, 2, 3]
            if(this.grayReportFlag || EditionArr.includes(this.edition)) return this.reportAuth && this.superQrCodeGrayFlag && this.superQrcodeAuth;
            return this.reportAuth && this.superQrCodeGrayFlag;
        },
    },
    mounted(){
        // 超级二维码行为分析灰度
        this.grayQrCodeFunction();

        // 阀门呢
        if(!this.isOneGrayQrCodeFlag){
            // 智能报表灰度
            this.getReportGary();
            // 报表权限
            this.getReportAuth();
            // 是否有查看权限
            this.getAuthorityForKey();
        }
    },
    methods: {
        /* 超级二维码行为分析灰度 */
        async grayQrCodeFunction(){
            try{
                const res = await producqQrcode.grayQrCodeFunction();
                if(res.status !== 0) return;
    
                this.superQrCodeGrayFlag = res.data.superCodePro;
            }catch(err){
                console.log(err);
            }
        },
        // 获取智能报表的灰度
        async getReportGary(){
            try{
                const res = await grayFunction();
                if(res.status !== 0) return;
        
                this.grayReportFlag = res.data.dashBoardAirp;
            }catch(err){
                console.log(err);
            }
        },
        // 获取报表权限
        async getReportAuth(){
            try {
                const { data } = await getReportAuth({authKey: 'VIP_REPORT_VIEW'});
                this.reportAuth = data;
            }catch(e){
                console.error('getReportAuth', e);
            }
        },
        // 是否有行为分析报表权限
        async getAuthorityForKey(){
            try{
                const { code, data, msg } = await getAuthorityForKey('SUPERQRCODEANALYSIS');
                this.superQrcodeAuth = data;
            }catch(e){
                console.log('getAuthorityForKey~~~', e);
            }
        },
    }
}

export default SuperQrCodeBhAnalysis;